#1、open函数用于打文件，open(文件路径，打开方式，字符编码)
    #文件路径：可以写绝对路径，也可以写相对路径
    #打开方式：r只读，w重写，a追加，b二进制(通常用来读写图片文件)，r+可读可写
    #字符编码：英文不需要考虑，中文有unicode、GBK、utf-8等方式，必须与文件的字符编码一致才能正确的读取中文
#2.1、read函数用于读取文件内容
    #read()读取全文
    #read(n)读取n个字符
        #如果多次读取n个字符，是接着往后读，不是从0开始读
        #\n也算1个字符
#2.2、readlines函数，用于读取文件行
    #会返回一个列表，列表的每个元素都是文件的一行内容
#3、wirte函数用于写入内容
    #打开方式w重写，如果文件不存在会新建文件，每次打开文件会先清空文件，再写入。
    #打开方式a重写，如果文件不存在会新建文件，每次都在文件尾部追加内容。
#4、close()函数用于关闭文件
#5、内部库csv模块，可以用于读取csv文件
    #csv文件，即可以用记事本读取，也可以用excel读取

#案例5、读取CSV文件中第2行数据的sname和age
# import csv
# f = open(r'D:\study_python128\study_file\file004.csv','r')
# reader = csv.DictReader(f)      #实例化对象reader，把f作为实参传递到DictRader类中
# lst=[]                  #定义一个空列表
# for l in reader:        #遍历reader，就是读取csv文件的每一行内容形成字典
#     lst.append(l)       #把每行内容添加到列表中
# f.close()
# print(lst)              #lst是一个列表，列表中的每个元素都是一个字典
# print(lst[1]['sname'],lst[1]['age'])      #读取列表lst的第2个元素它是一个字典，读取字典lst[1]的sname和age键

#练习：复制一张图片
# #以rb的方式打开图片，读取源文件内容
# f1=open(r'C:\Users\Administrator\Pictures\ultraman\3.jpg','rb')
# t=f1.read()
# f1.close()
# #以wb的方式新建另一个图片文件，写入读取的内容
# f2 = open(r'D:\study_python128\study_file\file003.jpg','wb')
# f2.write(t)
# f2.close()

#案例4.用代码新建一个文件file002.txt，并写入内容
# f = open(r'D:\study_python128\study_file\file002.txt', 'a', encoding='UTF-8')
# f.write('天青色等烟雨，而我在等你。\n')
# f.close()
# f = open(r'D:\study_python128\study_file\file002.txt', 'a', encoding='UTF-8')
# f.write('炊烟袅袅升起，隔江千万里。\n')
# f.close()

#案例3.打开文件，按行读取内容
# f = open(r'D:\study_python128\study_file\file001.txt', 'r', encoding='UTF-8')
# t = f.readlines()
# print(t)
# f.close()

#案例2.打开文件，连续读取5个字符
# f = open(r'D:\study_python128\study_file\file001.txt', 'r', encoding='UTF-8')
# t = f.read(5)
# print(t)
# t = f.read(5)
# print(t)
# f.close()

#案例1.打开文件，读取全部内容
# f = open(r'D:\study_python128\study_file\file001.txt', 'r', encoding='UTF-8')
# t = f.read()
# print(t)
# f.close()
